package model

import (
	"manager/model/entity"
)

// BatteryTypeCreateRequest 创建现场数据
type BatteryTypeCreateRequest struct {
	Name string `json:"name"`

	Version string `json:"version"`

	Voltage string `json:"voltage"`

	Type int `json:"type"`

	Supplier string `json:"supplier"`

	Capacity string `json:"capacity"`

	UpdatedAt int64 `json:"updated_at"`
}

// BatteryTypeUpdateRequest 更新现场数据
type BatteryTypeUpdateRequest struct {
	Id int64 `json:"id"`

	Name *string `json:"name"`

	Version *string `json:"version"`

	Voltage *string `json:"voltage"`

	Type *int `json:"type"`

	Supplier *string `json:"supplier"`

	Capacity *string `json:"capacity"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt *int64 `json:"updated_at"`
}

// BatteryTypeListRequest 列表现场数据
type BatteryTypeListRequest struct {
	Index int `json:"index"`
	Size  int `json:"size"`

	Id int64 `json:"id"`

	Name *string `json:"name"`

	Version *string `json:"version"`

	Voltage *string `json:"voltage"`

	Type *int `json:"type"`

	Supplier *string `json:"supplier"`

	Capacity *string `json:"capacity"`

	UpdatedAt *int64 `json:"updated_at"`
}

// BatteryTypeListResponse 列表回包数据
type BatteryTypeListResponse struct {
	Total int                `json:"total"`
	List  []*BatteryTypeInfo `json:"list"`
}

// BatteryTypeInfoRequest 列表现场数据
type BatteryTypeInfoRequest struct {
	Id int64 `json:"id"`

	Name *string `json:"name"`

	Version *string `json:"version"`

	Voltage *string `json:"voltage"`

	Type *int `json:"type"`

	Supplier *string `json:"supplier"`

	Capacity *string `json:"capacity"`

	UpdatedAt *int64 `json:"updated_at"`
}

// BatteryTypeInfo 详细数据
type BatteryTypeInfo struct {
	Id int64 `json:"id"`

	Name string `json:"name"`

	Version string `json:"version"`

	Voltage string `json:"voltage"`

	Type int `json:"type"`

	Supplier string `json:"supplier"`

	Capacity string `json:"capacity"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt int64 `json:"updated_at"`
}

// BatteryTypeDeleteRequest 删除现场数据
type BatteryTypeDeleteRequest struct {
	Id int64 `json:"id"`
}

// BatteryTypesEntityToDto entity数据转换
func BatteryTypesEntityToDto(batteryTypes []*entity.BatteryType) []*BatteryTypeInfo {
	out := make([]*BatteryTypeInfo, 0, len(batteryTypes))
	for _, c := range batteryTypes {
		out = append(out, BatteryTypeEntityToDto(c))
	}
	return out
}

// BatteryTypeEntityToDto entity数据转换
func BatteryTypeEntityToDto(e *entity.BatteryType) *BatteryTypeInfo {
	return &BatteryTypeInfo{

		Id: e.Id,

		Name: e.Name,

		Version: e.Version,

		Voltage: e.Voltage,

		Type: e.Type,

		Supplier: e.Supplier,

		Capacity: e.Capacity,

		CreatedAt: e.CreatedAt,

		UpdatedAt: e.UpdatedAt,
	}
}
